home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / var / db / pkg / sys-libs / ncurses-5.5-r2 / ncurses-5.5-r2.ebuild < prev    next >
Text File  |  2006-06-22  |  5KB  |  181 lines

  1. # Copyright 1999-2006 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3. # $Header: /var/cvsroot/gentoo-x86/sys-libs/ncurses/ncurses-5.5-r2.ebuild,v 1.9 2006/06/12 18:09:30 blubb Exp $
  4.  
  5. inherit eutils flag-o-matic toolchain-funcs
  6.  
  7. MY_PV=${PV:0:3}
  8. PV_SNAP=${PV:4}
  9. MY_P=${PN}-${MY_PV}
  10. DESCRIPTION="console display library"
  11. HOMEPAGE="http://www.gnu.org/software/ncurses/ http://dickey.his.com/ncurses/"
  12. SRC_URI="mirror://gnu/ncurses/${MY_P}.tar.gz"
  13.  
  14. LICENSE="MIT"
  15. SLOT="5"
  16. KEYWORDS="~alpha amd64 ~arm ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd"
  17. IUSE="gpm build bootstrap debug doc minimal unicode nocxx"
  18.  
  19. DEPEND="gpm? ( sys-libs/gpm )"
  20. RDEPEND="${DEPEND}"
  21.  
  22. S=${WORKDIR}/${MY_P}
  23.  
  24. src_unpack() {
  25.     unpack ${A}
  26.     cd "${S}"
  27.     [[ -n ${PV_SNAP} ]] && epatch "${WORKDIR}"/${MY_P}-${PV_SNAP}-patch.sh
  28.  
  29.     epatch "${FILESDIR}/${P}-gfbsd.patch"
  30. }
  31.  
  32. src_compile() {
  33.     tc-export BUILD_CC
  34.  
  35.     # Protect the user from themselves #115036
  36.     unset TERMINFO
  37.  
  38.     # From version 5.3, ncurses also build c++ bindings, and as
  39.     # we do not have a c++ compiler during bootstrap, disable
  40.     # building it.  We will rebuild ncurses after gcc's second
  41.     # build in bootstrap.sh.
  42.     local myconf=""
  43.     ( use build || use bootstrap || use nocxx ) \
  44.         && myconf="${myconf} --without-cxx --without-cxx-binding --without-ada"
  45.  
  46.     # First we build the regular ncurses ...
  47.     mkdir "${WORKDIR}"/narrowc
  48.     cd "${WORKDIR}"/narrowc
  49.     do_compile ${myconf}
  50.  
  51.     # Then we build the UTF-8 version
  52.     if use unicode ; then
  53.         mkdir "${WORKDIR}"/widec
  54.         cd "${WORKDIR}"/widec
  55.         do_compile ${myconf} --enable-widec --includedir=/usr/include/ncursesw
  56.     fi
  57. }
  58. do_compile() {
  59.     ECONF_SOURCE=${S}
  60.  
  61.     local mylibprefix=""
  62.     [[ ${CHOST} == *-darwin* ]] && mylibprefix="/usr"
  63.  
  64.     # We need the basic terminfo files in /etc, bug #37026.  We will
  65.     # add '--with-terminfo-dirs' and then populate /etc/terminfo in
  66.     # src_install() ...
  67.     # The chtype/mmask-t settings below are to retain ABI compat
  68.     # with ncurses-5.4 so dont change em !
  69.     econf \
  70.         --libdir=${mylibprefix}/$(get_libdir) \
  71.         --with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo" \
  72.         --disable-termcap \
  73.         --with-shared \
  74.         --with-rcs-ids \
  75.         --without-ada \
  76.         --enable-symlinks \
  77.         --enable-const \
  78.         --with-chtype='long' \
  79.         --with-mmask-t='long' \
  80.         $(use_with debug) \
  81.         $(use_with gpm) \
  82.         "$@" \
  83.         || die "configure failed"
  84.  
  85.     # A little hack to fix parallel builds ... they break when
  86.     # generating sources so if we generate the sources first (in
  87.     # non-parallel), we can then build the rest of the package
  88.     # in parallel.  This is not really a perf hit since the source
  89.     # generation is quite small.  -vapier
  90.     emake -j1 sources || die "make sources failed"
  91.     emake || die "make failed"
  92. }
  93.  
  94. src_install() {
  95.     # install unicode version first so that the non-unicode
  96.     # files overwrite the unicode versions
  97.     if use unicode ; then
  98.         cd "${WORKDIR}"/widec
  99.         make DESTDIR="${D}" install || die "make widec install failed"
  100.     fi
  101.     cd "${WORKDIR}"/narrowc
  102.     make DESTDIR="${D}" install || die "make narrowc install failed"
  103.  
  104.     if [[ ${CHOST} != *-darwin* ]] ; then
  105.         # Move static and extraneous ncurses libraries out of /lib
  106.         dodir /usr/$(get_libdir)
  107.         cd "${D}"/$(get_libdir)
  108.         mv lib{form,menu,panel}.so* *.a "${D}"/usr/$(get_libdir)/
  109.         gen_usr_ldscript lib{,n}curses.so
  110.         if use unicode ; then
  111.             mv lib{form,menu,panel}w.so* "${D}"/usr/$(get_libdir)/
  112.             gen_usr_ldscript lib{,n}cursesw.so
  113.         fi
  114.     fi
  115.  
  116.     # We need the basic terminfo files in /etc, bug #37026
  117.     einfo "Installing basic terminfo files in /etc..."
  118.     for x in ansi console dumb linux rxvt screen sun vt{52,100,102,200,220} \
  119.              xterm xterm-color xterm-xfree86
  120.     do
  121.         local termfile=$(find "${D}"/usr/share/terminfo/ -name "${x}" 2>/dev/null)
  122.         local basedir=$(basename $(dirname "${termfile}"))
  123.  
  124.         if [[ -n ${termfile} ]] ; then
  125.             dodir /etc/terminfo/${basedir}
  126.             mv ${termfile} "${D}"/etc/terminfo/${basedir}/
  127.             dosym ../../../../etc/terminfo/${basedir}/${x} \
  128.                 /usr/share/terminfo/${basedir}/${x}
  129.         fi
  130.     done
  131.  
  132.     # Build fails to create this ...
  133.     dosym ../share/terminfo /usr/$(get_libdir)/terminfo
  134.  
  135.     echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" > "${T}"/50ncurses
  136.     doenvd "${T}"/50ncurses
  137.  
  138.     if use build ; then
  139.         cd "${D}"
  140.         rm -rf usr/share/man
  141.         cd usr/share/terminfo
  142.         cp -pPR l/linux n/nxterm v/vt100 "${T}"
  143.         rm -rf *
  144.         mkdir l x v
  145.         cp -pPR "${T}"/linux l
  146.         cp -pPR "${T}"/nxterm x/xterm
  147.         cp -pPR "${T}"/vt100 v
  148.     else
  149.         # Install xterm-debian terminfo entry to satisfy bug #18486
  150.         LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${D}/usr/$(get_libdir):${D}/$(get_libdir) \
  151.         TERMINFO=${D}/usr/share/terminfo \
  152.             "${D}"/usr/bin/tic "${FILESDIR}"/xterm-debian.ti
  153.  
  154.         if use minimal ; then
  155.             cp "${D}"/usr/share/terminfo/x/xterm-debian "${D}"/etc/terminfo/x/
  156.             rm -r "${D}"/usr/share/terminfo
  157.         fi
  158.  
  159.         cd "${S}"
  160.         dodoc ANNOUNCE MANIFEST NEWS README* TO-DO doc/*.doc
  161.         use doc && dohtml -r doc/html/
  162.     fi
  163. }
  164.  
  165. pkg_preinst() {
  166.     if [[ ! -f ${ROOT}/etc/env.d/50ncurses ]] ; then
  167.         mkdir -p "${ROOT}"/etc/env.d
  168.         echo "CONFIG_PROTECT_MASK=\"/etc/terminfo\"" > \
  169.             "${ROOT}"/etc/env.d/50ncurses
  170.     fi
  171. }
  172.  
  173. pkg_postinst() {
  174.     # Old ncurses may still be around from old build tbz2's.
  175.     rm -f "${ROOT}"/lib/libncurses.so.5.[23] "${ROOT}"/usr/lib/lib{form,menu,panel}.so.5.[23]
  176.     if [[ $(get_libdir) != "lib" ]] ; then
  177.         rm -f "${ROOT}"/$(get_libdir)/libncurses.so.5.[23] \
  178.             "${ROOT}"/usr/$(get_libdir)/lib{form,menu,panel}.so.5.[23]
  179.     fi
  180. }
  181.